package com.dfbz.service;

import com.dfbz.dao.UserDao;
import com.dfbz.entity.User;
import com.dfbz.entity.Userfocus;
import com.dfbz.utils.PageUtils;

import java.util.Date;
import java.util.List;

public class UserService {
    private UserDao userDao = new UserDao();

    /**
     * 根据用户名查询用户是否存在
     * @param username
     * @return
     */
    public User findByUsername(String username) {
        return userDao.findByUsername(username);
    }

    /**
     * 根据邮箱查询用户是否存在
     * @param email
     * @return
     */
    public User findByemail(String email) {
        return userDao.findByemail(email);
    }

    /**
     * 注册新用户
     * @param user
     */
    public void addUser(User user) {
        if(user.getRealName() == null){
            user.setRealName(user.getUsername());
        }
        if(user.getPic() == null){
            user.setPic("http://localhost:8080/upload/def.png");
        }
        user.setRegisterTime(new Date());
        user.setIsSecret("0");
        userDao.addUser(user);
    }


    /**
     * 分页/模糊查询用户列表
     * @param cureePage
     * @param realName
     * @return
     */
    public PageUtils<User> findUserList(int cureePage, String realName) {
        return userDao.findUserList(cureePage,realName);
    }

    /**
     * 查询某个部门下的所有用户
     * @param id
     * @return
     */
    public List<User> findUserByDeptId(Long id) {
        return userDao.findUserByDeptId(id);
    }

    /**
     * 根据id查询指定用户
     * @param id
     * @return
     */
    public User findUserById(long id) {
        return userDao.findUserById(id);
    }

    /**
     * 查询关注数
     * @param id
     * @return
     */
    public Long findFocus(long id) {
        return userDao.findFocus(id);
    }

    /**
     * 查询粉丝数
     * @param id
     * @return
     */
    public Long findFans(long id) {
        return userDao.findFans(id);
    }

    /**
     * 更新被看数
     * @param id
     */
    public void updateLookById(Long id) {
        userDao.updateLookById(id);
    }

    /**
     * 更新用户头像
     * @param id
     * @param path
     */
    public void updatePic(Long id, String path) {
        userDao.updatePic(id,path);
    }

    /**
     * 更新用户信息
     * @param user
     */
    public void updateUserInfo(User user) {
        userDao.updateUserInfo(user);
    }

    /**
     * 查询我关注的用户
     * @param cureePage
     * @param focusList
     * @return
     */
    public  PageUtils<User> findUserListById(Integer cureePage,List<Long> focusList) {
        return userDao.findUserListById(cureePage,focusList);
    }

    /**
     * 更新用户登录时间
     * @param id
     */
    public void updateLoginTimeById(Long id) {
        userDao.updateLoginTimeById(id);
    }

    /**
     * 根据银魂微信id查询用户是否存在
     * @param wxOpenid
     * @return
     */
    public User findUserByWxopenid(String wxOpenid) {
       return userDao.findUserByWxopenid(wxOpenid);
    }

    /**
     * 查询最大的用户id
     * @return
     */
    public Long findMaxId() {
       return userDao.findMaxId();
    }
}
